using System;

namespace Com.ContentRendering.Api.ParserEngine
{
    /// <summary/>
    public interface OutputNodeInterface
    {
        /// <summary/>
        OutputNodeInterface AddParentSubstitutionTag(int level);

        /// <summary/>
        OutputNodeInterface AddParentTransparentTag(int level);

        /// <summary/>
        OutputNodeInterface AddParentIfTag(int level);

        /// <summary/>
        OutputNodeInterface AddParentIfNotTag(int level);

        /// <summary/>
        void AddParentOutputTag(int level);

        /// <summary/>
        OutputNodeInterface AddChildSubstitutionTag(string name);

        /// <summary/>
        OutputNodeInterface AddChildTransparentTag(string name);

        /// <summary/>
        OutputNodeInterface AddChildIfTag(string name);

        /// <summary/>
        OutputNodeInterface AddChildIfNotTag(string name);

        /// <summary/>
        void AddChildOutputTag(string name);

        /// <summary/>
        OutputNodeInterface AddRootSubstitutionTag(string name);

        /// <summary/>
        OutputNodeInterface AddRootTransparentTag(string name);

        /// <summary/>
        OutputNodeInterface AddRootIfTag(string name);

        /// <summary/>
        OutputNodeInterface AddRootIfNotTag(string name);

        /// <summary/>
        void AddRootOutputTag(string name);

        /// <summary/>
        void AddContent(string content);

        /// <summary/>
        OutputNodeInterface Parent { get;}
    }
}
